home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Mathematics / Notebooks / SigProc2.0 / Packages / SignalProcessing / Support.m < prev   
Encoding:
Text File  |  1992-08-18  |  7.9 KB  |  234 lines

  1. (*  :Title:    Initialization for signal processing supporting objects  *)
  2.  
  3. (*  :Authors:    Brian Evans, James McClellan  *)
  4.  
  5. (*  :Summary:    This is an initialization file only  *)
  6.  
  7. (*  :Context:    Global`  *)
  8.  
  9. (*  :PackageVersion:  2.74    *)
  10.  
  11. (*
  12.     :Copyright:    Copyright 1989-1992 by Brian L. Evans
  13.         Georgia Tech Research Corporation
  14.  
  15.     Permission to use, copy, modify, and distribute this software
  16.     and its documentation for any purpose and without fee is
  17.     hereby granted, provided that the above copyright notice
  18.     appear in all copies and that both that copyright notice and
  19.     this permission notice appear in supporting documentation,
  20.     and that the name of Georgia Tech or Georgia Institute of
  21.     Technology not be used in advertising or publicity pertaining
  22.     to distribution of the software without specific, written prior
  23.     permission.  Georgia Tech makes no representations about the
  24.     suitability of this software for any purpose.  It is provided
  25.     "as is" without express or implied warranty.
  26.  *)
  27.  
  28. (*  :History:    *)
  29.  
  30. (*  :Keywords:    *)
  31.  
  32. (*  :Source:    *)
  33.  
  34. (*  :Warning:    *)
  35.  
  36. (*  :Mathematica Version:  1.2 or 2.0  *)
  37.  
  38. (*  :Limitation:  *)
  39.  
  40.  
  41. (*  B E G I N     I N I T I A L I Z A T I O N  *)
  42.  
  43.  
  44.  
  45. Which[
  46.  
  47.  
  48. (*  Check to make sure that these have not already been loaded  *)
  49.  
  50. MemberQ[ $ContextPath, "SignalProcessing`Support`" ],
  51.  
  52.   support::loaded =
  53.     "Version 2.74 of the signal processing support packages has \
  54.     already been loaded",
  55.  
  56.  
  57. (*  For Mathematica 2.0, we only define the stubs  *)
  58.  
  59. TrueQ[ $VersionNumber >= 2.0 ],
  60.  
  61.   Print["Defining stubs for objects in version 2.74 of the \
  62.            signal processing support packages ..."];
  63.  
  64.   DeclarePackage[ "SignalProcessing`Support`Convolution`", { 
  65.             "$ConvolutionDomain", "Area", "AutoCorrelation",
  66.             "ConvertFromList", "ConvertToList",
  67.             "CTPiecewiseConvolution", "DTPiecewiseConvolution",
  68.             "IntervalQ", "PiecewiseConvolution",
  69.             "PiecewisePlot", "PlotList",
  70.             "SetConvolutionDomain", "SimplifyList",
  71.             "ValidIntervalQ" } ];
  72.  
  73.   DeclarePackage[ "SignalProcessing`Support`DataType`", { 
  74.             "AddDataType", "AllDataTypes", "AssociateDataType",
  75.             "CombineDataType", "ComplexAntiSymmetric",
  76.             "ComplexSymmetric", "DataType", "DataTypeQ",
  77.             "DataTypes", "DefConstant", "FTDataType",
  78.             "GetPosition", "Imaginary", "Irrational",
  79.             "IrrationalQ", "IsComplexQ", "IsImaginaryQ",
  80.             "IsIntegerQ", "IsIrrationalQ", "IsRationalQ",
  81.             "IsRealQ", "SubDataTypeQ", "SymbolDataType",
  82.             "SymbolDataTypeQ", "UnAssociateDataType" } ];
  83.  
  84.   DeclarePackage[ "SignalProcessing`Support`FilterSupport`", { 
  85.             "Analog", "Bandpass", "Bandstop", "Bessel",
  86.             "BilinearTransformation", "Butterworth", "CFIR",
  87.             "CIIR", "ChebyshevI", "ChebyshevII", "DesignFilter",
  88.             "Digital", "Elliptic", "FilterOrder",
  89.             "FilterParameters", "FIR", "Highpass", "IIR",
  90.             "IIRFunction", "Lowpass" } ];
  91.  
  92.   DeclarePackage[ "SignalProcessing`Support`LatticeTheory`", { 
  93.             "BezoutNumbers", "ColumnHermiteForm",
  94.             "CommutableResamplingMatricesQ", "DiagonalMatrixQ",
  95.             "DistinctCosetVectors", "EuclidFactors",
  96.             "GCLD", "GCRD", "IncList", "ImpulseTrain",
  97.             "IntegerVectorQ", "LCLM", "LCRM",
  98.             "NormalizeSamplingMatrix", "RegUnimodularResMatrixQ",
  99.             "RelativelyPrime", "ReorderResampling",
  100.             "ResamplingMatrix", "ResamplingMatrixMod",
  101.             "RowHermiteForm", "SmithFormSameU", "SmithFormSameV",
  102.             "SmithNormalForm", "SmithOrderedForm",
  103.             "SmithReducedForm", "UpsampledSystem" } ];
  104.  
  105.   DeclarePackage[ "SignalProcessing`Support`ROC`", { 
  106.             "FindRMinus", "FindRPlus", "GetRMinus", "GetRPlus",
  107.             "InfCheck", "IntersectsROC", "LTransData",
  108.             "LVariables", "Rminus", "Rplus", "Transform",
  109.             "WithinROC", "ZTransData", "ZVariables" } ];
  110.  
  111.   DeclarePackage[ "SignalProcessing`Support`SigProc`", { 
  112.             "$DeltaScaling", "Aliasby", "CConvolve",
  113.             "CircularShift", "Convolve", "Continuous",
  114.             "CPulse", "CStep", "Delta", "DeltaIntegrate",
  115.             "DeltaPlot", "DFT", "DTFT", "Difference",
  116.             "Dirichlet", "Discrete", "DiscreteGraphics",
  117.             "Domain", "Downsample", "DummyVariables",
  118.             "Extent1D", "FT", "GetDeltaFunctions", "Impulse",
  119.             "Interleave", "IntervalsToFunction", "InvDFT",
  120.             "InvDTFT", "InvFT", "InvL", "InvZ", "L",
  121.             "LineImpulse", "OperatorInOperExpr", "OperatorName",
  122.             "ParametersInOperExpr", "Periodic",
  123.             "PolyphaseDownsample", "PolyphaseUpsample",
  124.             "Pulse", "RationalGCD", "Rev", "RewriteSummations",
  125.             "ScaleAxis", "ScalingFactor", "SequencePlot",
  126.             "SequenceToFunction", "Shift", "SignalCleanup",
  127.             "SignalPlot", "SignalsInOperExpr", "Sinc",
  128.             "SPSimplify", "Step", "Summation", "TheFunction",
  129.             "ToContinuous", "ToDiscrete", "Unit", "Upsample",
  130.             "UpsampledFunction", "UpsampleFactor",
  131.             "UpsampleSequence", "Z",
  132.             "AliasedSinc", "AliasSinc", "ASinc" } ];
  133.  
  134.   DeclarePackage[ "SignalProcessing`Support`SupCode`", { 
  135.             "AllSubsets", "Arrow2D", "AssociateItem", "Assuming",
  136.             "CirclePS", "Combine", "ComplexQ", "ComplexTo2DCoord",
  137.             "ComplexTo2DCoordList", "ConstantQ", "ConstantTerm",
  138.             "Dialogue", "Element", "EmptyQ", "GenerateCode",
  139.             "GeneratePattern", "GenerateSymbol",
  140.             "GetAllExponents", "GetAllFactors",
  141.             "GetAllShiftFactors", "GetArgs",
  142.             "GetOperatorVariables", "GetRoot", "GetRootList",
  143.             "GetShiftFactor", "GetStateField",
  144.             "GetVariables", "GetValue",
  145.             "HasAttributes", "ImaginaryQ", "InRange",
  146.             "InfinityQ", "InformUserQ", "ListQ",
  147.             "MixedPolynomialQ", "MyApart", "MyCollectAll",
  148.             "MyFreeQ", "MyMessage", "NullPlot",
  149.             "PatternQ", "PointwisePlot", "PrintIt",
  150.             "ProtectIt", "RationalQ", "RationalFunctionQ",
  151.             "RationalPolynomialQ", "RealQ", "RealValuedQ",
  152.             "RemoveOptions", "ReplaceWith", "RuleAppliesQ",
  153.             "SameFormQ", "Second", "SetExclusion",
  154.             "SetStateField", "SPfunctions", "SPLessGreaterRules",
  155.             "SPoperators", "SPsignals", "SPSimplificationRules",
  156.             "StripPackage", "SubsetQ", "TableLookup",
  157.             "Third", "ToCollection", "ToList", "UnprotectIt",
  158.             "VariableQ", "ZeroQ", "ZPolynomial" } ];
  159.  
  160.   DeclarePackage[ "SignalProcessing`Support`TransSupport`", { 
  161.             "AddT", "ConjT", "ConvolveT", "DerivativeT",
  162.             "DomainScale", "IntegrateT", "Linear",
  163.             "LineImpulsemDT", "MagRangeScale", "MagPhasePlot",
  164.             "MultiDInvTransform", "MultiDLookup",
  165.             "MultiDTransform", "MultT", "PhaseRangeScale",
  166.             "PoleZeroPlot", "Radian", "ROCPlot",
  167.             "RootLocus", "ScaleT", "ShadedAnnulus", "Stable",
  168.             "SubT", "SubstituteForT", "TransformFixUp",
  169.             "TransformDialogue", "TransformLookup",
  170.             "MagnitudePhasePlot", "RootLocusPlot" } ];
  171.  
  172.   DeclarePackage[ "SignalProcessing`Support`Tree`", { 
  173.             "AddChildToTree", "DeleteFromTree",
  174.             "InitTree", "SubTree" } ];
  175.  
  176.   AppendTo[$ContextPath, "SignalProcessing`Support`"];
  177.  
  178.   support::loaded =
  179.     "Stubs for the supporting routines, objects, and rules for the
  180.     signal processing package have been loaded successfully.",
  181.  
  182.  
  183. (*  Load necessary files in order of hierarchy, bottom up. *)
  184.  
  185. True, 
  186.  
  187.   Print["Loading version 2.74 of the signal processing support packages ..."];
  188.  
  189.   Needs[ "SignalProcessing`Support`SupCode`" ];        (* level a  *)
  190.  
  191.   Needs[ "SignalProcessing`Support`FilterSupport`" ];    (* level b  *)
  192.   Needs[ "SignalProcessing`Support`SigProc`" ];
  193.  
  194.   Needs[ "SignalProcessing`Support`ROC`" ];        (* level c  *)
  195.   Needs[ "SignalProcessing`Support`Convolution`" ];
  196.  
  197.   Needs[ "SignalProcessing`Support`TransSupport`" ];    (* level d  *)
  198.  
  199.   AppendTo[$ContextPath, "SignalProcessing`Support`"];
  200.  
  201.   support::loaded =
  202.     "Supporting routines, objects, and rules for the signal \
  203.     processing package have been loaded successfully."
  204.  
  205. ]
  206.  
  207. (*  Temporary messages  *)
  208.  
  209. support::error = "The current context should be Global` and it is not."
  210. support::change =
  211.     "The loading process has changed such that the files Tree.m and \
  212.     DataType.m are no longer automatically loaded (the signal \
  213.     processing packages no longer rely on the definitions in these files)."
  214.  
  215. (*  Error checking  *)
  216.  
  217. If [ SameQ[$Context, "Global`"],
  218.      Message[ support::loaded ],
  219.      Message[ support::error ] ]
  220.  
  221. If [ ! TrueQ[ $VersionNumber >= 2.0 ],
  222.      Message[ support::change ] ]
  223.  
  224. (*  Remove temporary messages  *)
  225.  
  226. support::error = .
  227. support::loaded = .
  228. support::change = .
  229.  
  230.  
  231. (*  E N D     I N I T I A L I Z A T I O N  *)
  232.  
  233. Null
  234.